package workqueue;

import com.rabbitmq.client.*;
import utils.RabbitMQUtils;

import java.io.IOException;

/**
 * @author lucine
 * @version 1.0 2021/6/18 10:43
 */
public class Customer1 {
    public static void main(String[] args) throws Exception {
        Connection connection = RabbitMQUtils.getConnection();
        Channel channel = connection.createChannel();
        //每次只能消费一个消息
        channel.basicQos(1);
        channel.queueDeclare("work",true,false,false,null);

        //参数1队列名称 参数2：消息自动确认机制 true ，消费者自动想rabbitmq确认消息 false 不会自动确认消息
        channel.basicConsume("work",true,new DefaultConsumer(channel){
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
                System.out.println("消费者1："+new String(body));
                //手动确认 参数1确认队列中的哪个具体消息 手动确认标识 参数2 是否开启多个消息同时确认   false 每次确认一个
                channel.basicAck(envelope.getDeliveryTag(),false);
            }
        });

//        RabbitMQUtils.cloneConnectionAndChannel(channel,connection);
    }
}
